package exercise.day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class 接口练习题 {
    /**
     * 下面定义了一个方法：对两个对象比大小，如果o1比o2大，则返回+1； 相等返回0；小于返回-1
     * 但是，这个方法，只能对Person列表进行排序
     * 如果我需要用这个方法还能同时对Cat列表进行排序，该怎么改造？
     *
     */
    public static int compareObject(Person p1,Person p2){
        int res = p1.compare(p2);
        return res;
    }
    // 测试
    public static void main(String[] args) {

        Person p1 = new Person("超哥", 18, 98.8f);
        Person p2 = new Person("杰哥", 38, 98.8f);

        int res = compareObject(p1, p2);
        System.out.println(res);

        Cat cat1 = new Cat("kitty", 38);
        Cat cat2 = new Cat("rose", 48);
        // int res2 = compareObject(cat1, cat2);  //现在是报错的
    }
}
// -------------------------
class Cat{
    String name;
    int length;

    public Cat(String name, int length) {
        this.name = name;
        this.length = length;
    }
}

// ------------------------------
class Person{
    String name;
    int age;
    float score;

    // 对传入的另一个Person对象，与当前的Person对象比age，如果当前>传入的，则返回+1，=则返回0，小于则返回-1
    public int compare(Person other){
        return Integer.compare(this.age,other.age);
    }

    public Person(String name, int age, float score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
}
